LINK(2) | Руководство программиста Linux | LINK(2) |
ИМЯ¶
link - создать новое имя файла
ОБЗОР¶
#include <unistd.h>
int link(const char *oldpath, const char *newpath);
ОПИСАНИЕ¶
link создает новую ссылку (также известную как "жесткая" ссылка) на существующий файл.
Если newpath существует, он не будет перезаписан.
Это новое имя может использоваться точно так же, как и старое, для любых операций; оба имени ссылаются на один и тот же файл (то есть имеют те же права доступа и владельца) и невозможно сказать, какое имя было "настоящим".
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.
ОШИБКИ¶
- EXDEV
- oldpath и newpath находятся на разных файловых системах.
- EPERM
- Файловая система, содержащая oldpath и newpath, не поддерживает жесткие ссылки.
- EFAULT
- oldpath или newpath указывают за пределы доступного адресного пространства.
- EACCES
- Запись в каталог, содержащий newpath, не разрешен для uid'а процесса, или же один из каталогов oldpath или newpath не разрешает поиск.
- ENAMETOOLONG
- oldpath или newpath слишком длинны.
- ENOENT
- Одна из частей пути oldpath или newpath не существует или является "висячей" символической ссылкой.
- ENOTDIR
- Компонент пути, использованный как каталог в oldpath или newpath, в действительности таковым не является.
- ENOMEM
- Ядру не хватило памяти.
- EROFS
- Файл находится на файловой системе, смонтированной только для чтения.
- EEXIST
- newpath уже существует.
- EMLINK
- Файл, на который ссылается oldpath уже имеет максимальное количество ссылок.
- ELOOP
- oldpath или newpath содержат зацикленную символическую ссылку, то есть при ее подстановке происходит ссылка на нее саму.
- ENOSPC
- На устройстве, содержащем файл, нет места для создания новой записи в каталоге. Это может произойти также, если исчерпана квота дискового пространства пользователя.
- EPERM
- oldpath является записью . or ..
ЗАМЕЧАНИЯ¶
Жесткие ссылки, созданные с помощью link, не могут указывать в другие файловые системы. Если это требуется, используйте symlink.
СООТВЕТСТВИЕ СТАНДАРТАМ¶
SVr4, SVID, POSIX, BSD 4.3. SVr4 документирует дополнительные коды ошибки ENOLINK и EMULTIHOP; POSIX.1 не документирует ELOOP.
НЕДОСТАТКИ РЕАЛИЗАЦИИ¶
На файловых системах NFS код возврата может быть неверен в случае, если NFS-сервер создает ссылку и умирает, прежде чем сообщает об этом. Используйте stat(2), чтобы узнать, создалась ли ссылка.
СМОТРИ ТАКЖЕ¶
symlink(2), unlink(2), rename(2), open(2), stat(2), ln(1), link(8).
ПЕРЕВОД¶
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999-2000
1997-12-10 | Linux |